package socketTest;

import java.io.*;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class Client {
    private Socket socket;
    public Client(){//使用构造方法连接服务端
        try {
            System.out.println("客户端正在连接");
            //创建一个网络客户端
            //构造方法给一个ip地址以及服务端对应的端口号
            socket = new Socket("localhost",8089);
            System.out.println("已连接上");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void start(){
        try {
            //获取一个输出流(字节流)
            OutputStream out = socket.getOutputStream();
            //创建转换流，把字节流进行转换为字符流，并设置utf-8(不设置utf-8会导致接收方接收的是乱码)
            OutputStreamWriter osw = new OutputStreamWriter(out, StandardCharsets.UTF_8);
            //创建一个缓冲流,把字符存进去
            BufferedWriter bw = new BufferedWriter(osw);
            //缓冲流放进PrintWriter(向文本输出流)，true实现Flush方法
            PrintWriter pw = new PrintWriter(bw,true);
            //拿来一个扫描器
            Scanner sc = new Scanner(System.in);
            while (true){
                //输出的字符串返回到变量s中
                String s = sc.nextLine();
                if("exit".equals(s)){//判定s的字符串语句是否exit
                    //跳出循环
                    break;
                }
                //以输出一段字符串且换行
                pw.println(s);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    public static void main(String[] args) {
        //实例Client
        Client client = new Client();
        //执行Client方法
        client.start();
    }
    private class ServerHandler implements Runnable{
        public void run(){

        }
    }
}
